<!-- HTML header for doxygen 1.8.18-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Ipopt: src/Interfaces/Ipopt.java Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  extensions: ["tex2jax.js"],
  jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 40px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Ipopt Documentation
   &#160;<!--span id="projectnumber">3.14.17</span-->
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <span id="MSearchSelect"                onmouseover="return searchBox.OnSearchSelectShow()"                onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
          <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('Ipopt_8java_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="header">
  <div class="headertitle"><div class="title">Ipopt.java</div></div>
</div><!--header-->
<div class="contents">
<a href="Ipopt_8java.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="comment">/* Copyright (C) 2007 VRTech Industrial Technologies - www.vrtech.com.br.</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment"> * Copyright (C) 2007 Tong Kewei, Beihang University, - www.buaa.edu.cn.</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment"> * All Rights Reserved.</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment"> * This code is published under the Eclipse Public License.</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment"> */</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"><a class="line" href="namespaceorg_1_1coinor.html">    7</a></span><span class="keyword">package </span>org.coinor;</div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="keyword">import</span> java.io.File;</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span> </div>
<div class="foldopen" id="foldopen00044" data-start="{" data-end="};">
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html">   44</a></span><span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class </span><a class="code hl_namespace" href="namespaceIpopt.html">Ipopt</a></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>{</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>   <span class="comment">/* Native function should not be used directly */</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a3372d37c34ef8716b2a2d5bf5eed64be">   47</a></span>   <span class="keyword">private</span> native <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a3372d37c34ef8716b2a2d5bf5eed64be">AddIpoptIntOption</a>(</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>      <span class="keywordtype">long</span>   <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a>,</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>      String keyword,</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>      <span class="keywordtype">int</span>    val</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>   );</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>   <span class="comment">/* Native function should not be used directly */</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ac3b0533ed600d1a350c39cc7ac314657">   54</a></span>   <span class="keyword">private</span> native <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#ac3b0533ed600d1a350c39cc7ac314657">AddIpoptNumOption</a>(</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>      <span class="keywordtype">long</span>   <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a>,</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>      String keyword,</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>      <span class="keywordtype">double</span> val</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>   );</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>   <span class="comment">/* Native function should not be used directly */</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a851e5c9e543e9de8b89061d527e0e39a">   61</a></span>   <span class="keyword">private</span> native <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a851e5c9e543e9de8b89061d527e0e39a">AddIpoptStrOption</a>(</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span>      <span class="keywordtype">long</span>   <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a>,</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>      String keyword,</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span>      String val</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>   );</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>   <span class="comment">/* Native function should not be used directly */</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ad3e70c3f0c045077b086199f7a7b5a19">   68</a></span>   <span class="keyword">private</span> native <span class="keywordtype">long</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#ad3e70c3f0c045077b086199f7a7b5a19">CreateIpoptProblem</a>(</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>      <span class="keywordtype">int</span> n,</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>      <span class="keywordtype">int</span> m,</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>      <span class="keywordtype">int</span> nele_jac,</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>      <span class="keywordtype">int</span> nele_hess,</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>      <span class="keywordtype">int</span> index_style</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span>   );</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span> </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>   <span class="comment">/* Native function should not be used directly */</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a5135398105ea5616a141397bd043ee64">   77</a></span>   <span class="keyword">private</span> native <span class="keywordtype">void</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a5135398105ea5616a141397bd043ee64">FreeIpoptProblem</a>(</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span>      <span class="keywordtype">long</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>   );</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span>   <span class="comment">/* Native function should not be used directly */</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a4d9fd1045e1dcef18fd16c52161be407">   82</a></span>   <span class="keyword">private</span> native <span class="keywordtype">int</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a4d9fd1045e1dcef18fd16c52161be407">OptimizeTNLP</a>(</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span>      <span class="keywordtype">long</span>   <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a>,</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span>      <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>[],</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span>      <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a46d765adde7a0da8980734b7c4f41aff">g</a>[],</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span>      <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a9cdb448d319b75a8ffad2ae1df8c6551">obj_val</a>[],</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>      <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ab0910d0da9b1a0edc3dfb655abfdf0ea">mult_g</a>[],</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>      <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ab4cf62cbe73667cb903e9dcddae881dd">mult_x_L</a>[],</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>      <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a43a18366b435f807bb7dc9b28de4b7f9">mult_x_U</a>[],</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>      <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ae7d529ffa405d16fb69750e855bc6a40">callback_grad_f</a>[],</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>      <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a3d43f354d13771f3e7c45fe66949cdf0">callback_jac_g</a>[],</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span>      <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a1294b1186358327819b4a02bbfedbd07">callback_hess</a>[]</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>   );</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span>   <span class="comment">/* Native function should not be used directly */</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a1e0e0ec4d50fee0fb749a9005449a6ae">   96</a></span>   <span class="keyword">private</span> native <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a1e0e0ec4d50fee0fb749a9005449a6ae">GetCurrIterate</a>(</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span>      <span class="keywordtype">long</span>     <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a>,</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span>      <span class="keywordtype">long</span>     ip_data,</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>      <span class="keywordtype">long</span>     ip_cq,</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>      <span class="keywordtype">boolean</span>  scaled,</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>      <span class="keywordtype">int</span>      n,</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span>      <span class="keywordtype">double</span>   <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>[],</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span>      <span class="keywordtype">double</span>   z_L[],</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>      <span class="keywordtype">double</span>   z_U[],</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span>      <span class="keywordtype">int</span>      m,</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>      <span class="keywordtype">double</span>   <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a46d765adde7a0da8980734b7c4f41aff">g</a>[],</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span>      <span class="keywordtype">double</span>   lambda[]</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>   );</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span>   <span class="comment">/* Native function should not be used directly */</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ac63a8698afbd446181712bfd86e08f9c">  111</a></span>   <span class="keyword">private</span> native <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#ac63a8698afbd446181712bfd86e08f9c">GetCurrViolations</a>(</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span>      <span class="keywordtype">long</span>     <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a>,</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>      <span class="keywordtype">long</span>     ip_data,</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>      <span class="keywordtype">long</span>     ip_cq,</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>      <span class="keywordtype">boolean</span>  scaled,</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span>      <span class="keywordtype">int</span>      n,</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span>      <span class="keywordtype">double</span>   x_L_violation[],</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span>      <span class="keywordtype">double</span>   x_U_violation[],</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span>      <span class="keywordtype">double</span>   compl_x_L[],</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span>      <span class="keywordtype">double</span>   compl_x_U[],</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>      <span class="keywordtype">double</span>   grad_lag_x[],</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span>      <span class="keywordtype">int</span>      m,</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span>      <span class="keywordtype">double</span>   nlp_constraint_violation[],</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span>      <span class="keywordtype">double</span>   compl_g[]</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span>   );</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span> </div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a4443ff7d1619c147a03ec0d33dde3c94">  128</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4443ff7d1619c147a03ec0d33dde3c94">C_STYLE</a> = 0;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ad22ccf5588351d02b727a02a7cddd933">  131</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ad22ccf5588351d02b727a02a7cddd933">FORTRAN_STYLE</a> = 1;</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span>   <span class="comment">/* The possible Ipopt status return codes: should be kept in sync with Ipopt return codes */</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a06e22b2ef0b1d1bf4d2d7ff49c228404">  134</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a06e22b2ef0b1d1bf4d2d7ff49c228404">SOLVE_SUCCEEDED</a> = 0;</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#aabd4d7c743b373810d1cf25c64099871">  135</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aabd4d7c743b373810d1cf25c64099871">ACCEPTABLE_LEVEL</a> = 1;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a1b66fa1fe9f3aafb1b9c35357b9d4a35">  136</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a1b66fa1fe9f3aafb1b9c35357b9d4a35">INFEASIBLE_PROBLEM</a> = 2;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a71cca49bd302b1242449eb3b393d348b">  137</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a71cca49bd302b1242449eb3b393d348b">SEARCH_DIRECTION_TOO_SMALL</a> = 3;</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a18e6b30304b999c437d1ce5f8e363287">  138</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a18e6b30304b999c437d1ce5f8e363287">DIVERGING_ITERATES</a> = 4;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#abb69198b1498dbb9c51c56607406a414">  139</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#abb69198b1498dbb9c51c56607406a414">USER_REQUESTED_STOP</a> = 5;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a7f2a52a6c5606b6703f02035914a2552">  140</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a7f2a52a6c5606b6703f02035914a2552">ITERATION_EXCEEDED</a> = -1;</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ac7f5039b29dd61866610e3a8e8a403b8">  141</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ac7f5039b29dd61866610e3a8e8a403b8">RESTORATION_FAILED</a> = -2;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ab7d1d406f9705fda644a3c1fdc31c904">  142</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ab7d1d406f9705fda644a3c1fdc31c904">ERROR_IN_STEP_COMPUTATION</a> = -3;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#af915b9705da65d4ec1dfaf7b5889c61c">  143</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#af915b9705da65d4ec1dfaf7b5889c61c">CPUTIME_EXCEEDED</a> = -4;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a01a8754e65054cb811e22ad371258c36">  144</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a01a8754e65054cb811e22ad371258c36">WALLTIME_EXCEEDED</a> = -5;           </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a5b51f92e8764572d9c48569908a22dce">  145</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a5b51f92e8764572d9c48569908a22dce">NOT_ENOUGH_DEGREES_OF_FRE</a> = -10;</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a6601c123db771db778c4c25061327048">  146</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a6601c123db771db778c4c25061327048">INVALID_PROBLEM_DEFINITION</a> = -11;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#aa0b37ea4f81ff1dc33d0738a25aef2cd">  147</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aa0b37ea4f81ff1dc33d0738a25aef2cd">INVALID_OPTION</a> = -12;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a9005b727656170847da4498472d44be0">  148</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a9005b727656170847da4498472d44be0">INVALID_NUMBER_DETECTED</a> = -13;</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a40720118bf5c1cfe52c265700c1a7ab7">  149</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a40720118bf5c1cfe52c265700c1a7ab7">UNRECOVERABLE_EXCEPTION</a> = -100;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ac3f7ebbac769cbf00c30a2d1e7ca124a">  150</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ac3f7ebbac769cbf00c30a2d1e7ca124a">NON_IPOPT_EXCEPTION</a> = -101;</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a59b78aca47982a3930ff05caa43d89dd">  151</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a59b78aca47982a3930ff05caa43d89dd">INSUFFICIENT_MEMORY</a> = -102;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#afd5a2fcda4688ceef6ad841d2cb7f627">  152</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#afd5a2fcda4688ceef6ad841d2cb7f627">INTERNAL_ERROR</a> = -199;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span>   <span class="comment">/* The possible algorithm modes (passed to intermediate_callback) */</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#af185184ae1fe687e64a5f5880c48813d">  155</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#af185184ae1fe687e64a5f5880c48813d">REGULARMODE</a> = 0;            </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a3f2f733983ced5bb2db465a6e9329a45">  156</a></span>   <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a3f2f733983ced5bb2db465a6e9329a45">RESTORATIONPHASEMODE</a> = 1;   </div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">  159</a></span>   <span class="keyword">private</span> <span class="keywordtype">long</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a>;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ae7d529ffa405d16fb69750e855bc6a40">  162</a></span>   <span class="keyword">private</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ae7d529ffa405d16fb69750e855bc6a40">callback_grad_f</a>[];</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a3d43f354d13771f3e7c45fe66949cdf0">  163</a></span>   <span class="keyword">private</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a3d43f354d13771f3e7c45fe66949cdf0">callback_jac_g</a>[];</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a1294b1186358327819b4a02bbfedbd07">  164</a></span>   <span class="keyword">private</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a1294b1186358327819b4a02bbfedbd07">callback_hess</a>[];</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span> </div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">  167</a></span>   <span class="keyword">private</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>[];</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span> </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a9cdb448d319b75a8ffad2ae1df8c6551">  170</a></span>   <span class="keyword">private</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a9cdb448d319b75a8ffad2ae1df8c6551">obj_val</a>[] = {0};</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a46d765adde7a0da8980734b7c4f41aff">  173</a></span>   <span class="keyword">private</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a46d765adde7a0da8980734b7c4f41aff">g</a>[];</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ab4cf62cbe73667cb903e9dcddae881dd">  176</a></span>   <span class="keyword">private</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ab4cf62cbe73667cb903e9dcddae881dd">mult_x_L</a>[];</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a43a18366b435f807bb7dc9b28de4b7f9">  179</a></span>   <span class="keyword">private</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a43a18366b435f807bb7dc9b28de4b7f9">mult_x_U</a>[];</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span> </div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ab0910d0da9b1a0edc3dfb655abfdf0ea">  182</a></span>   <span class="keyword">private</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ab0910d0da9b1a0edc3dfb655abfdf0ea">mult_g</a>[];</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span> </div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a54943c4b8f5c7658b32bd0a99b76589a">  185</a></span>   <span class="keyword">private</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a54943c4b8f5c7658b32bd0a99b76589a">status</a> = <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a6601c123db771db778c4c25061327048">INVALID_PROBLEM_DEFINITION</a>;</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span> </div>
<div class="foldopen" id="foldopen00193" data-start="{" data-end="}">
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ab140cae4c428047f583ca789df5e5495">  193</a></span>   <span class="keyword">public</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#ab140cae4c428047f583ca789df5e5495">Ipopt</a>()</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span>   {</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span>      <span class="keywordflow">if</span>( System.getProperty(<span class="stringliteral">&quot;os.name&quot;</span>).toLowerCase().indexOf(<span class="stringliteral">&quot;win&quot;</span>) &gt;= 0 )</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span>      {</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno">  197</span>         <span class="comment">/* for Ipopt releases, it should be ipopt-3.dll</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno">  198</span><span class="comment">          * for other intermediate versions, it should be ipopt-0.dll</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno">  199</span><span class="comment">          * with MinGW, libtool adds a &quot;lib&quot; prefix</span></div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno">  200</span><span class="comment">          * finally, try also without version info</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span><span class="comment">          */</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span>         <span class="keyword">final</span> String[] candidates = { <span class="stringliteral">&quot;ipopt-3&quot;</span>, <span class="stringliteral">&quot;ipopt-0&quot;</span>, <span class="stringliteral">&quot;libipopt-3&quot;</span>, <span class="stringliteral">&quot;libipopt-0&quot;</span>, <span class="stringliteral">&quot;ipopt&quot;</span>, <span class="stringliteral">&quot;libipopt&quot;</span> };</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno">  203</span>         <span class="keywordtype">boolean</span> loadedlib = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno">  204</span>         <span class="keywordflow">for</span>( String c : candidates )</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span>         {</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>            <span class="keywordflow">try</span></div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span>            {</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span>               <span class="comment">/* This loads the Ipopt library with RTLD_LOCAL, which means that symbols loaded are not made available for future dlopen() calls.</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span><span class="comment">                * This causes a problem when using MKL, which loads an additional library at runtime, e.g., libmkl_avx2, because this lib references</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span><span class="comment">                * to symbols that could be resolved in previously load MKL libraries - but are not because of RTLD_LOCAL.</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span><span class="comment">                * TODO should one add some kind of workaround to load the Ipopt lib with RTLD_GLOBAL?, e.g.,</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span><span class="comment">                *     https://stackoverflow.com/questions/5425034/java-load-shared-libraries-with-dependencies</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span><span class="comment">                *     https://github.com/victor-paltz/global-load-library</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span><span class="comment">                */</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span>               System.loadLibrary(c);</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span>               loadedlib = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span>               <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno">  218</span>            }</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno">  219</span>            <span class="keywordflow">catch</span>( UnsatisfiedLinkError e )</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno">  220</span>            { }</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno">  221</span>         }</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno">  222</span>         <span class="keywordflow">if</span>( !loadedlib )</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span>         {</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span>            <span class="keywordflow">throw</span> <span class="keyword">new</span> UnsatisfiedLinkError(<span class="stringliteral">&quot;Could not load Ipopt library. Check your java.library.path.&quot;</span>);</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span>         }</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span>      }</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span>      <span class="keywordflow">else</span></div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span>      {</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span>         System.loadLibrary(<span class="stringliteral">&quot;ipopt&quot;</span>);</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span>      }</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span>   }</div>
</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span> </div>
<div class="foldopen" id="foldopen00239" data-start="{" data-end="}">
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a3f65d8c507f1ac7b3386dcd92e9a70e8">  239</a></span>   <span class="keyword">public</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a3f65d8c507f1ac7b3386dcd92e9a70e8">Ipopt</a>(</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span>      String DLL)</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno">  241</span>   {</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno">  242</span>      <span class="comment">// Loads the library</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span>      System.loadLibrary(DLL);</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno">  244</span>   }</div>
</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno">  245</span> </div>
<div class="foldopen" id="foldopen00252" data-start="{" data-end="}">
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a400135e918a4b6377ea4581411ac2298">  252</a></span>   <span class="keyword">public</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a400135e918a4b6377ea4581411ac2298">Ipopt</a>(</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno">  253</span>      String path,</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno">  254</span>      String DLL)</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span>   {</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno">  256</span>      <span class="comment">// Loads the library</span></div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno">  257</span>      File file = <span class="keyword">new</span> File(path, System.mapLibraryName(DLL));</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno">  258</span>      System.load(file.getAbsolutePath());</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno">  259</span>   }</div>
</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno">  260</span> </div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#accab4abbd131031465d261fbed4eba4a">  281</a></span>   <span class="keyword">abstract</span> <span class="keyword">protected</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#accab4abbd131031465d261fbed4eba4a">get_bounds_info</a>(</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno">  282</span>      <span class="keywordtype">int</span>      n,</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno">  283</span>      <span class="keywordtype">double</span>[] x_l,</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno">  284</span>      <span class="keywordtype">double</span>[] x_u,</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno">  285</span>      <span class="keywordtype">int</span>      m,</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno">  286</span>      <span class="keywordtype">double</span>[] g_l,</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno">  287</span>      <span class="keywordtype">double</span>[] g_u</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno">  288</span>   );</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno">  289</span> </div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a239c7ca7247de559e4ee50fd3fbf77c1">  314</a></span>   <span class="keyword">abstract</span> <span class="keyword">protected</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a239c7ca7247de559e4ee50fd3fbf77c1">get_starting_point</a>(</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span>      <span class="keywordtype">int</span>      n,</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span>      <span class="keywordtype">boolean</span>  init_x,</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span>      <span class="keywordtype">double</span>[] <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>,</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno">  318</span>      <span class="keywordtype">boolean</span>  init_z,</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span>      <span class="keywordtype">double</span>[] z_L,</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno">  320</span>      <span class="keywordtype">double</span>[] z_U,</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno">  321</span>      <span class="keywordtype">int</span>      m,</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno">  322</span>      <span class="keywordtype">boolean</span>  init_lambda,</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno">  323</span>      <span class="keywordtype">double</span>[] lambda</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno">  324</span>   );</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno">  325</span> </div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a80bae3cab08d6fdab223d74cf33e5f02">  337</a></span>   <span class="keyword">abstract</span> <span class="keyword">protected</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a80bae3cab08d6fdab223d74cf33e5f02">eval_f</a>(</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno">  338</span>      <span class="keywordtype">int</span>      n,</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno">  339</span>      <span class="keywordtype">double</span>[] <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>,</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span>      <span class="keywordtype">boolean</span>  new_x,</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno">  341</span>      <span class="keywordtype">double</span>[] obj_value</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno">  342</span>   );</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno">  343</span> </div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a77ead30aae6f366cdd41d566893199ef">  355</a></span>   <span class="keyword">abstract</span> <span class="keyword">protected</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a77ead30aae6f366cdd41d566893199ef">eval_grad_f</a>(</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno">  356</span>      <span class="keywordtype">int</span>      n,</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno">  357</span>      <span class="keywordtype">double</span>[] <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>,</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno">  358</span>      <span class="keywordtype">boolean</span>  new_x,</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno">  359</span>      <span class="keywordtype">double</span>[] grad_f</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno">  360</span>   );</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno">  361</span> </div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a04825d67738e9017df30846060f8a660">  372</a></span>   <span class="keyword">abstract</span> <span class="keyword">protected</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a04825d67738e9017df30846060f8a660">eval_g</a>(</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno">  373</span>      <span class="keywordtype">int</span>      n,</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno">  374</span>      <span class="keywordtype">double</span>[] <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>,</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno">  375</span>      <span class="keywordtype">boolean</span>  new_x,</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno">  376</span>      <span class="keywordtype">int</span>      m,</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno">  377</span>      <span class="keywordtype">double</span>[] <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a46d765adde7a0da8980734b7c4f41aff">g</a></div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno">  378</span>   );</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno">  379</span> </div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a2fc8279558b81381c39f7b7136b6890a">  408</a></span>   <span class="keyword">abstract</span> <span class="keyword">protected</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a2fc8279558b81381c39f7b7136b6890a">eval_jac_g</a>(</div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno">  409</span>      <span class="keywordtype">int</span>      n,</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno">  410</span>      <span class="keywordtype">double</span>[] <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>,</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno">  411</span>      <span class="keywordtype">boolean</span>  new_x,</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno">  412</span>      <span class="keywordtype">int</span>      m,</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno">  413</span>      <span class="keywordtype">int</span>      nele_jac,</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno">  414</span>      <span class="keywordtype">int</span>[]    iRow,</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno">  415</span>      <span class="keywordtype">int</span>[]    jCol,</div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno">  416</span>      <span class="keywordtype">double</span>[] values</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno">  417</span>   );</div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno">  418</span> </div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a8338a6f69c453de7e0c7d02309fce4f9">  451</a></span>   <span class="keyword">abstract</span> <span class="keyword">protected</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a8338a6f69c453de7e0c7d02309fce4f9">eval_h</a>(</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno">  452</span>      <span class="keywordtype">int</span>      n,</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno">  453</span>      <span class="keywordtype">double</span>[] <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>,</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno">  454</span>      <span class="keywordtype">boolean</span>  new_x,</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno">  455</span>      <span class="keywordtype">double</span>   obj_factor,</div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno">  456</span>      <span class="keywordtype">int</span>      m,</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno">  457</span>      <span class="keywordtype">double</span>[] lambda,</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno">  458</span>      <span class="keywordtype">boolean</span>  new_lambda,</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno">  459</span>      <span class="keywordtype">int</span>      nele_hess,</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno">  460</span>      <span class="keywordtype">int</span>[]    iRow,</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno">  461</span>      <span class="keywordtype">int</span>[]    jCol,</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno">  462</span>      <span class="keywordtype">double</span>[] values</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno">  463</span>   );</div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno">  464</span> </div>
<div class="foldopen" id="foldopen00475" data-start="{" data-end="}">
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a6f81bd51d53915702ad63a651e5c9d6b">  475</a></span>   <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a6f81bd51d53915702ad63a651e5c9d6b">dispose</a>()</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno">  476</span>   {</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno">  477</span>      <span class="comment">// dispose the native implementation</span></div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno">  478</span>      <span class="keywordflow">if</span>( <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a> != 0 )</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno">  479</span>      {</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno">  480</span>         <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a5135398105ea5616a141397bd043ee64">FreeIpoptProblem</a>(<a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a>);</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno">  481</span>         <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a> = 0;</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno">  482</span>      }</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno">  483</span>   }</div>
</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno">  484</span> </div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno">  485</span>   @Deprecated</div>
<div class="foldopen" id="foldopen00486" data-start="{" data-end="}">
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#af97dda92a9fa67678dcdd86ab28c2fae">  486</a></span>   <span class="keyword">protected</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#af97dda92a9fa67678dcdd86ab28c2fae">finalize</a>() throws Throwable</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno">  487</span>   {</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno">  488</span>      <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a6f81bd51d53915702ad63a651e5c9d6b">dispose</a>();</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno">  489</span>   }</div>
</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno">  490</span> </div>
<div class="foldopen" id="foldopen00503" data-start="{" data-end="}">
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a974f513fe0380fa5feb582855657ea49">  503</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a974f513fe0380fa5feb582855657ea49">create</a>(</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno">  504</span>      <span class="keywordtype">int</span> n,</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno">  505</span>      <span class="keywordtype">int</span> m,</div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno">  506</span>      <span class="keywordtype">int</span> nele_jac,</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno">  507</span>      <span class="keywordtype">int</span> nele_hess,</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno">  508</span>      <span class="keywordtype">int</span> index_style)</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno">  509</span>   {</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno">  510</span>      <span class="comment">// delete any previously created native memory</span></div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno">  511</span>      <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a6f81bd51d53915702ad63a651e5c9d6b">dispose</a>();</div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno">  512</span> </div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno">  513</span>      <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a> = <span class="keyword">new</span> <span class="keywordtype">double</span>[n];</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno">  514</span>      <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a46d765adde7a0da8980734b7c4f41aff">g</a> = <span class="keyword">new</span> <span class="keywordtype">double</span>[m];</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno">  515</span> </div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno">  516</span>      <span class="comment">// allocate the callback arguments</span></div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno">  517</span>      <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ae7d529ffa405d16fb69750e855bc6a40">callback_grad_f</a> = <span class="keyword">new</span> <span class="keywordtype">double</span>[n];</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno">  518</span>      <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a3d43f354d13771f3e7c45fe66949cdf0">callback_jac_g</a>  = <span class="keyword">new</span> <span class="keywordtype">double</span>[nele_jac];</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno">  519</span>      <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a1294b1186358327819b4a02bbfedbd07">callback_hess</a>   = <span class="keyword">new</span> <span class="keywordtype">double</span>[nele_hess];</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno">  520</span> </div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno">  521</span>      <span class="comment">// the multiplier</span></div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno">  522</span>      <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a43a18366b435f807bb7dc9b28de4b7f9">mult_x_U</a> = <span class="keyword">new</span> <span class="keywordtype">double</span>[n];</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno">  523</span>      <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ab4cf62cbe73667cb903e9dcddae881dd">mult_x_L</a> = <span class="keyword">new</span> <span class="keywordtype">double</span>[n];</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno">  524</span>      <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ab0910d0da9b1a0edc3dfb655abfdf0ea">mult_g</a>   = <span class="keyword">new</span> <span class="keywordtype">double</span>[m];</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno">  525</span> </div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno">  526</span>      <span class="comment">// create the optimization problem and return a pointer to it</span></div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno">  527</span>      <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a> = <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#ad3e70c3f0c045077b086199f7a7b5a19">CreateIpoptProblem</a>(n, m,  nele_jac, nele_hess, index_style);</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno">  528</span> </div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno">  529</span>      <span class="comment">//System.out.println(&quot;Finish Java Obj&quot;);</span></div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno">  530</span>      <span class="keywordflow">return</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a> == 0 ? false : <span class="keyword">true</span>;</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno">  531</span>   }</div>
</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno">  532</span> </div>
<div class="foldopen" id="foldopen00541" data-start="{" data-end="}">
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a7be6b14ffc43b7883b3f59d9920b0a56">  541</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a7be6b14ffc43b7883b3f59d9920b0a56">setIntegerOption</a>(</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno">  542</span>      String keyword,</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno">  543</span>      <span class="keywordtype">int</span>    val)</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno">  544</span>   {</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno">  545</span>      <span class="keywordflow">if</span>( <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a> == 0 )</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno">  546</span>      {</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno">  547</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno">  548</span>      }</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno">  549</span> </div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno">  550</span>      <span class="keywordflow">return</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a3372d37c34ef8716b2a2d5bf5eed64be">AddIpoptIntOption</a>(<a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a>, keyword, val);</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno">  551</span>   }</div>
</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno">  552</span> </div>
<div class="foldopen" id="foldopen00561" data-start="{" data-end="}">
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ac7a464793c01a39c4e68f093f960056e">  561</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#ac7a464793c01a39c4e68f093f960056e">setNumericOption</a>(</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno">  562</span>      String keyword,</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno">  563</span>      <span class="keywordtype">double</span> val)</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno">  564</span>   {</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno">  565</span>      <span class="keywordflow">if</span>( <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a> == 0 )</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno">  566</span>      {</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno">  567</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno">  568</span>      }</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno">  569</span> </div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno">  570</span>      <span class="keywordflow">return</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#ac3b0533ed600d1a350c39cc7ac314657">AddIpoptNumOption</a>(<a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a>, keyword, val);</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno">  571</span>   }</div>
</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno">  572</span> </div>
<div class="foldopen" id="foldopen00581" data-start="{" data-end="}">
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a0b8c641615793cd0f55c94447e43018c">  581</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a0b8c641615793cd0f55c94447e43018c">setStringOption</a>(</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno">  582</span>      String keyword,</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno">  583</span>      String val)</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno">  584</span>   {</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno">  585</span>      <span class="keywordflow">if</span>( <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a> == 0 )</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno">  586</span>      {</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno">  587</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno">  588</span>      }</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno">  589</span> </div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno">  590</span>      <span class="keywordflow">return</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a851e5c9e543e9de8b89061d527e0e39a">AddIpoptStrOption</a>(<a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">ipopt</a>, keyword, val.toLowerCase());</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno">  591</span>   }</div>
</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno">  592</span> </div>
<div class="foldopen" id="foldopen00603" data-start="{" data-end="}">
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ae1d61a61ade3ef02dea4441196f42b95">  603</a></span>   <span class="keyword">public</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#ae1d61a61ade3ef02dea4441196f42b95">OptimizeNLP</a>()</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno">  604</span>   {</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno">  605</span>      this.status = this.<a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a4d9fd1045e1dcef18fd16c52161be407">OptimizeTNLP</a>(ipopt,</div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno">  606</span>                                      <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>, <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a46d765adde7a0da8980734b7c4f41aff">g</a>, <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a9cdb448d319b75a8ffad2ae1df8c6551">obj_val</a>, <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ab0910d0da9b1a0edc3dfb655abfdf0ea">mult_g</a>, <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ab4cf62cbe73667cb903e9dcddae881dd">mult_x_L</a>, <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a43a18366b435f807bb7dc9b28de4b7f9">mult_x_U</a>,</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno">  607</span>                                      <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ae7d529ffa405d16fb69750e855bc6a40">callback_grad_f</a>, <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a3d43f354d13771f3e7c45fe66949cdf0">callback_jac_g</a>, <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a1294b1186358327819b4a02bbfedbd07">callback_hess</a>);</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno">  608</span> </div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno">  609</span>      <span class="keywordflow">return</span> this.<a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a54943c4b8f5c7658b32bd0a99b76589a">status</a>;</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno">  610</span>   }</div>
</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno">  611</span> </div>
<div class="foldopen" id="foldopen00640" data-start="{" data-end="}">
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ac99c6c1aa98865aa73a2b1079a671024">  640</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#ac99c6c1aa98865aa73a2b1079a671024">get_curr_iterate</a>(</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno">  641</span>      <span class="keywordtype">long</span>     ip_data,</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno">  642</span>      <span class="keywordtype">long</span>     ip_cq,</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno">  643</span>      <span class="keywordtype">boolean</span>  scaled,</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno">  644</span>      <span class="keywordtype">int</span>      n,</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno">  645</span>      <span class="keywordtype">double</span>   <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>[],</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno">  646</span>      <span class="keywordtype">double</span>   z_L[],</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno">  647</span>      <span class="keywordtype">double</span>   z_U[],</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno">  648</span>      <span class="keywordtype">int</span>      m,</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno">  649</span>      <span class="keywordtype">double</span>   <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a46d765adde7a0da8980734b7c4f41aff">g</a>[],</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno">  650</span>      <span class="keywordtype">double</span>   lambda[]</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno">  651</span>   )</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno">  652</span>   {</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno">  653</span>      <span class="keywordflow">return</span> this.<a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a1e0e0ec4d50fee0fb749a9005449a6ae">GetCurrIterate</a>(ipopt, ip_data, ip_cq, scaled, n, <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>, z_L, z_U, m, <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a46d765adde7a0da8980734b7c4f41aff">g</a>, lambda);</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno">  654</span>   }</div>
</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno">  655</span> </div>
<div class="foldopen" id="foldopen00689" data-start="{" data-end="}">
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a6596d5beb266e5e60d57a9d5e52c8efa">  689</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a6596d5beb266e5e60d57a9d5e52c8efa">get_curr_violations</a>(</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno">  690</span>      <span class="keywordtype">long</span>     ip_data,</div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno">  691</span>      <span class="keywordtype">long</span>     ip_cq,</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno">  692</span>      <span class="keywordtype">boolean</span>  scaled,</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno">  693</span>      <span class="keywordtype">int</span>      n,</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno">  694</span>      <span class="keywordtype">double</span>   x_L_violation[],</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno">  695</span>      <span class="keywordtype">double</span>   x_U_violation[],</div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno">  696</span>      <span class="keywordtype">double</span>   compl_x_L[],</div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno">  697</span>      <span class="keywordtype">double</span>   compl_x_U[],</div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno">  698</span>      <span class="keywordtype">double</span>   grad_lag_x[],</div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno">  699</span>      <span class="keywordtype">int</span>      m,</div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno">  700</span>      <span class="keywordtype">double</span>   nlp_constraint_violation[],</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno">  701</span>      <span class="keywordtype">double</span>   compl_g[]</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno">  702</span>   )</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno">  703</span>   {</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno">  704</span>      <span class="keywordflow">return</span> this.<a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#ac63a8698afbd446181712bfd86e08f9c">GetCurrViolations</a>(ipopt, ip_data, ip_cq, scaled, n, x_L_violation, x_U_violation, compl_x_L, compl_x_U, grad_lag_x, m, nlp_constraint_violation, compl_g);</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno">  705</span>   }</div>
</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno">  706</span> </div>
<div class="foldopen" id="foldopen00710" data-start="{" data-end="}">
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#aecdb0c4a6377159165cc8240ba4881c2">  710</a></span>   <span class="keyword">public</span> <span class="keywordtype">double</span>[] <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#aecdb0c4a6377159165cc8240ba4881c2">getVariableValues</a>()</div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno">  711</span>   {</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno">  712</span>      <span class="keywordflow">return</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">x</a>;</div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno">  713</span>   }</div>
</div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno">  714</span> </div>
<div class="foldopen" id="foldopen00718" data-start="{" data-end="}">
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a6e22ba48fd43ad6e07bc133d0b46dca3">  718</a></span>   <span class="keyword">public</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a6e22ba48fd43ad6e07bc133d0b46dca3">getObjectiveValue</a>()</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno">  719</span>   {</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno">  720</span>      <span class="keywordflow">return</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a9cdb448d319b75a8ffad2ae1df8c6551">obj_val</a>[0];</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno">  721</span>   }</div>
</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno">  722</span> </div>
<div class="foldopen" id="foldopen00728" data-start="{" data-end="}">
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a9eebd3ea4266623fd1e006d1d676dac5">  728</a></span>   <span class="keyword">public</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a9eebd3ea4266623fd1e006d1d676dac5">getStatus</a>()</div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno">  729</span>   {</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno">  730</span>      <span class="keywordflow">return</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a54943c4b8f5c7658b32bd0a99b76589a">status</a>;</div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno">  731</span>   }</div>
</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno">  732</span> </div>
<div class="foldopen" id="foldopen00736" data-start="{" data-end="}">
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a34c0a003282d3c48710726b75d03dd62">  736</a></span>   <span class="keyword">public</span> <span class="keywordtype">double</span>[] <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a34c0a003282d3c48710726b75d03dd62">getConstraintValues</a>()</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno">  737</span>   {</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno">  738</span>      <span class="keywordflow">return</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a46d765adde7a0da8980734b7c4f41aff">g</a>;</div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno">  739</span>   }</div>
</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno">  740</span> </div>
<div class="foldopen" id="foldopen00744" data-start="{" data-end="}">
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ab0db8ae442cd8e7ad3066dbd833d23a5">  744</a></span>   <span class="keyword">public</span> <span class="keywordtype">double</span>[] <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#ab0db8ae442cd8e7ad3066dbd833d23a5">getConstraintMultipliers</a>()</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno">  745</span>   {</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno">  746</span>      <span class="keywordflow">return</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ab0910d0da9b1a0edc3dfb655abfdf0ea">mult_g</a>;</div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno">  747</span>   }</div>
</div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno">  748</span> </div>
<div class="foldopen" id="foldopen00752" data-start="{" data-end="}">
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a9430e3f76a33ad7054574043971b69b2">  752</a></span>   <span class="keyword">public</span> <span class="keywordtype">double</span>[] <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a9430e3f76a33ad7054574043971b69b2">getLowerBoundMultipliers</a>()</div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno">  753</span>   {</div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno">  754</span>      <span class="keywordflow">return</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#ab4cf62cbe73667cb903e9dcddae881dd">mult_x_L</a>;</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno">  755</span>   }</div>
</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno">  756</span> </div>
<div class="foldopen" id="foldopen00760" data-start="{" data-end="}">
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a33f18dd475f726a8791018db05c803fc">  760</a></span>   <span class="keyword">public</span> <span class="keywordtype">double</span>[] <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a33f18dd475f726a8791018db05c803fc">getUpperBoundMultipliers</a>()</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno">  761</span>   {</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno">  762</span>      <span class="keywordflow">return</span> <a class="code hl_variable" href="classorg_1_1coinor_1_1Ipopt.html#a43a18366b435f807bb7dc9b28de4b7f9">mult_x_U</a>;</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno">  763</span>   }</div>
</div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno">  764</span> </div>
<div class="foldopen" id="foldopen00789" data-start="{" data-end="}">
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a64b80dde363aebc64802b3ad950a7a06">  789</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a64b80dde363aebc64802b3ad950a7a06">intermediate_callback</a>(</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno">  790</span>      <span class="keywordtype">int</span>      algorithmmode,</div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno">  791</span>      <span class="keywordtype">int</span>      iter,</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno">  792</span>      <span class="keywordtype">double</span>   obj_value,</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno">  793</span>      <span class="keywordtype">double</span>   inf_pr,</div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno">  794</span>      <span class="keywordtype">double</span>   inf_du,</div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno">  795</span>      <span class="keywordtype">double</span>   mu,</div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno">  796</span>      <span class="keywordtype">double</span>   d_norm,</div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno">  797</span>      <span class="keywordtype">double</span>   regularization_size,</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno">  798</span>      <span class="keywordtype">double</span>   alpha_du,</div>
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno">  799</span>      <span class="keywordtype">double</span>   alpha_pr,</div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno">  800</span>      <span class="keywordtype">int</span>      ls_trials,</div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno">  801</span>      <span class="keywordtype">long</span>     ip_data,</div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno">  802</span>      <span class="keywordtype">long</span>     ip_cq)</div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno">  803</span>   {</div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno">  804</span>      <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno">  805</span>   }</div>
</div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno">  806</span> </div>
<div class="foldopen" id="foldopen00821" data-start="{" data-end="}">
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a28c05534837bdcae5d2c52358d7d8929">  821</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a28c05534837bdcae5d2c52358d7d8929">get_scaling_parameters</a>(</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno">  822</span>      <span class="keywordtype">double</span>[]  obj_scaling,</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno">  823</span>      <span class="keywordtype">int</span>       n,</div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno">  824</span>      <span class="keywordtype">double</span>[]  x_scaling,</div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno">  825</span>      <span class="keywordtype">int</span>       m,</div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno">  826</span>      <span class="keywordtype">double</span>[]  g_scaling,</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno">  827</span>      <span class="keywordtype">boolean</span>[] use_x_g_scaling)</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno">  828</span>   {</div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno">  829</span>      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno">  830</span>   }</div>
</div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno">  831</span> </div>
<div class="foldopen" id="foldopen00836" data-start="{" data-end="}">
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#ae4a6b09656bdb836851c22baf0112e47">  836</a></span>   <span class="keyword">public</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#ae4a6b09656bdb836851c22baf0112e47">get_number_of_nonlinear_variables</a>()</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno">  837</span>   {</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno">  838</span>      <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno">  839</span>   }</div>
</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno">  840</span> </div>
<div class="foldopen" id="foldopen00848" data-start="{" data-end="}">
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"><a class="line" href="classorg_1_1coinor_1_1Ipopt.html#a9c67cda248766e9f66d749fa99f432a7">  848</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code hl_function" href="classorg_1_1coinor_1_1Ipopt.html#a9c67cda248766e9f66d749fa99f432a7">get_list_of_nonlinear_variables</a>(</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno">  849</span>      <span class="keywordtype">int</span>   num_nonlin_vars,</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno">  850</span>      <span class="keywordtype">int</span>[] pos_nonlin_vars)</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno">  851</span>   {</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno">  852</span>      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno">  853</span>   }</div>
</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno">  854</span>}</div>
</div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a01a8754e65054cb811e22ad371258c36"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a01a8754e65054cb811e22ad371258c36">org.coinor.Ipopt.WALLTIME_EXCEEDED</a></div><div class="ttdeci">static final int WALLTIME_EXCEEDED</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00144">Ipopt.java:144</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a04825d67738e9017df30846060f8a660"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a04825d67738e9017df30846060f8a660">org.coinor.Ipopt.eval_g</a></div><div class="ttdeci">abstract boolean eval_g(int n, double[] x, boolean new_x, int m, double[] g)</div><div class="ttdoc">Method to request the constraint values.</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a06e22b2ef0b1d1bf4d2d7ff49c228404"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a06e22b2ef0b1d1bf4d2d7ff49c228404">org.coinor.Ipopt.SOLVE_SUCCEEDED</a></div><div class="ttdeci">static final int SOLVE_SUCCEEDED</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00134">Ipopt.java:134</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a0b8c641615793cd0f55c94447e43018c"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a0b8c641615793cd0f55c94447e43018c">org.coinor.Ipopt.setStringOption</a></div><div class="ttdeci">boolean setStringOption(String keyword, String val)</div><div class="ttdoc">Function for setting a string option.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00581">Ipopt.java:581</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a1294b1186358327819b4a02bbfedbd07"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a1294b1186358327819b4a02bbfedbd07">org.coinor.Ipopt.callback_hess</a></div><div class="ttdeci">double callback_hess[]</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00164">Ipopt.java:164</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a18e6b30304b999c437d1ce5f8e363287"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a18e6b30304b999c437d1ce5f8e363287">org.coinor.Ipopt.DIVERGING_ITERATES</a></div><div class="ttdeci">static final int DIVERGING_ITERATES</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00138">Ipopt.java:138</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a1b66fa1fe9f3aafb1b9c35357b9d4a35"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a1b66fa1fe9f3aafb1b9c35357b9d4a35">org.coinor.Ipopt.INFEASIBLE_PROBLEM</a></div><div class="ttdeci">static final int INFEASIBLE_PROBLEM</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00136">Ipopt.java:136</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a1e0e0ec4d50fee0fb749a9005449a6ae"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a1e0e0ec4d50fee0fb749a9005449a6ae">org.coinor.Ipopt.GetCurrIterate</a></div><div class="ttdeci">native boolean GetCurrIterate(long ipopt, long ip_data, long ip_cq, boolean scaled, int n, double x[], double z_L[], double z_U[], int m, double g[], double lambda[])</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a239c7ca7247de559e4ee50fd3fbf77c1"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a239c7ca7247de559e4ee50fd3fbf77c1">org.coinor.Ipopt.get_starting_point</a></div><div class="ttdeci">abstract boolean get_starting_point(int n, boolean init_x, double[] x, boolean init_z, double[] z_L, double[] z_U, int m, boolean init_lambda, double[] lambda)</div><div class="ttdoc">Method to request the starting point before iterating.</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a28c05534837bdcae5d2c52358d7d8929"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a28c05534837bdcae5d2c52358d7d8929">org.coinor.Ipopt.get_scaling_parameters</a></div><div class="ttdeci">boolean get_scaling_parameters(double[] obj_scaling, int n, double[] x_scaling, int m, double[] g_scaling, boolean[] use_x_g_scaling)</div><div class="ttdoc">If you using_scaling_parameters = true, this method should be overloaded.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00821">Ipopt.java:821</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a2fc8279558b81381c39f7b7136b6890a"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a2fc8279558b81381c39f7b7136b6890a">org.coinor.Ipopt.eval_jac_g</a></div><div class="ttdeci">abstract boolean eval_jac_g(int n, double[] x, boolean new_x, int m, int nele_jac, int[] iRow, int[] jCol, double[] values)</div><div class="ttdoc">Method to request either the sparsity structure or the values of the Jacobian of the constraints.</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a3372d37c34ef8716b2a2d5bf5eed64be"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a3372d37c34ef8716b2a2d5bf5eed64be">org.coinor.Ipopt.AddIpoptIntOption</a></div><div class="ttdeci">native boolean AddIpoptIntOption(long ipopt, String keyword, int val)</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a33f18dd475f726a8791018db05c803fc"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a33f18dd475f726a8791018db05c803fc">org.coinor.Ipopt.getUpperBoundMultipliers</a></div><div class="ttdeci">double[] getUpperBoundMultipliers()</div><div class="ttdoc">Gives dual multipliers for variable upper bounds in final point.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00760">Ipopt.java:760</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a34c0a003282d3c48710726b75d03dd62"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a34c0a003282d3c48710726b75d03dd62">org.coinor.Ipopt.getConstraintValues</a></div><div class="ttdeci">double[] getConstraintValues()</div><div class="ttdoc">Gives constraint function values at final point.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00736">Ipopt.java:736</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a3d43f354d13771f3e7c45fe66949cdf0"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a3d43f354d13771f3e7c45fe66949cdf0">org.coinor.Ipopt.callback_jac_g</a></div><div class="ttdeci">double callback_jac_g[]</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00163">Ipopt.java:163</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a3f2f733983ced5bb2db465a6e9329a45"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a3f2f733983ced5bb2db465a6e9329a45">org.coinor.Ipopt.RESTORATIONPHASEMODE</a></div><div class="ttdeci">static final int RESTORATIONPHASEMODE</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00156">Ipopt.java:156</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a3f65d8c507f1ac7b3386dcd92e9a70e8"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a3f65d8c507f1ac7b3386dcd92e9a70e8">org.coinor.Ipopt.Ipopt</a></div><div class="ttdeci">Ipopt(String DLL)</div><div class="ttdoc">Creates a NLP Solver for the given DLL file.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00239">Ipopt.java:239</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a400135e918a4b6377ea4581411ac2298"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a400135e918a4b6377ea4581411ac2298">org.coinor.Ipopt.Ipopt</a></div><div class="ttdeci">Ipopt(String path, String DLL)</div><div class="ttdoc">Creates a NLP Solver for the given DLL file and path.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00252">Ipopt.java:252</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a40720118bf5c1cfe52c265700c1a7ab7"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a40720118bf5c1cfe52c265700c1a7ab7">org.coinor.Ipopt.UNRECOVERABLE_EXCEPTION</a></div><div class="ttdeci">static final int UNRECOVERABLE_EXCEPTION</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00149">Ipopt.java:149</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a43a18366b435f807bb7dc9b28de4b7f9"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a43a18366b435f807bb7dc9b28de4b7f9">org.coinor.Ipopt.mult_x_U</a></div><div class="ttdeci">double mult_x_U[]</div><div class="ttdoc">Final multipliers for upper variable bounds.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00179">Ipopt.java:179</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a4443ff7d1619c147a03ec0d33dde3c94"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a4443ff7d1619c147a03ec0d33dde3c94">org.coinor.Ipopt.C_STYLE</a></div><div class="ttdeci">static final int C_STYLE</div><div class="ttdoc">Use C index style for iRow and jCol vectors.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00128">Ipopt.java:128</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a46d765adde7a0da8980734b7c4f41aff"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a46d765adde7a0da8980734b7c4f41aff">org.coinor.Ipopt.g</a></div><div class="ttdeci">double g[]</div><div class="ttdoc">Values of constraint at final point.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00173">Ipopt.java:173</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a4d0279b61ddf81f2c137dc016b1f4c92"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a4d0279b61ddf81f2c137dc016b1f4c92">org.coinor.Ipopt.x</a></div><div class="ttdeci">double x[]</div><div class="ttdoc">Final value of variable values.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00167">Ipopt.java:167</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a4d9fd1045e1dcef18fd16c52161be407"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a4d9fd1045e1dcef18fd16c52161be407">org.coinor.Ipopt.OptimizeTNLP</a></div><div class="ttdeci">native int OptimizeTNLP(long ipopt, double x[], double g[], double obj_val[], double mult_g[], double mult_x_L[], double mult_x_U[], double callback_grad_f[], double callback_jac_g[], double callback_hess[])</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a5135398105ea5616a141397bd043ee64"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a5135398105ea5616a141397bd043ee64">org.coinor.Ipopt.FreeIpoptProblem</a></div><div class="ttdeci">native void FreeIpoptProblem(long ipopt)</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a54943c4b8f5c7658b32bd0a99b76589a"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a54943c4b8f5c7658b32bd0a99b76589a">org.coinor.Ipopt.status</a></div><div class="ttdeci">int status</div><div class="ttdoc">Status returned by the solver.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00185">Ipopt.java:185</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a59b78aca47982a3930ff05caa43d89dd"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a59b78aca47982a3930ff05caa43d89dd">org.coinor.Ipopt.INSUFFICIENT_MEMORY</a></div><div class="ttdeci">static final int INSUFFICIENT_MEMORY</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00151">Ipopt.java:151</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a5b51f92e8764572d9c48569908a22dce"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a5b51f92e8764572d9c48569908a22dce">org.coinor.Ipopt.NOT_ENOUGH_DEGREES_OF_FRE</a></div><div class="ttdeci">static final int NOT_ENOUGH_DEGREES_OF_FRE</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00145">Ipopt.java:145</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a64b80dde363aebc64802b3ad950a7a06"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a64b80dde363aebc64802b3ad950a7a06">org.coinor.Ipopt.intermediate_callback</a></div><div class="ttdeci">boolean intermediate_callback(int algorithmmode, int iter, double obj_value, double inf_pr, double inf_du, double mu, double d_norm, double regularization_size, double alpha_du, double alpha_pr, int ls_trials, long ip_data, long ip_cq)</div><div class="ttdoc">Intermediate Callback method for the user.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00789">Ipopt.java:789</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a6596d5beb266e5e60d57a9d5e52c8efa"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a6596d5beb266e5e60d57a9d5e52c8efa">org.coinor.Ipopt.get_curr_violations</a></div><div class="ttdeci">boolean get_curr_violations(long ip_data, long ip_cq, boolean scaled, int n, double x_L_violation[], double x_U_violation[], double compl_x_L[], double compl_x_U[], double grad_lag_x[], int m, double nlp_constraint_violation[], double compl_g[])</div><div class="ttdoc">Get primal and dual infeasibility of the current iterate.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00689">Ipopt.java:689</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a6601c123db771db778c4c25061327048"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a6601c123db771db778c4c25061327048">org.coinor.Ipopt.INVALID_PROBLEM_DEFINITION</a></div><div class="ttdeci">static final int INVALID_PROBLEM_DEFINITION</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00146">Ipopt.java:146</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a6e22ba48fd43ad6e07bc133d0b46dca3"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a6e22ba48fd43ad6e07bc133d0b46dca3">org.coinor.Ipopt.getObjectiveValue</a></div><div class="ttdeci">double getObjectiveValue()</div><div class="ttdoc">Gives objective function value at final point.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00718">Ipopt.java:718</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a6f81bd51d53915702ad63a651e5c9d6b"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a6f81bd51d53915702ad63a651e5c9d6b">org.coinor.Ipopt.dispose</a></div><div class="ttdeci">void dispose()</div><div class="ttdoc">Dispose of the natively allocated memory.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00475">Ipopt.java:475</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a71cca49bd302b1242449eb3b393d348b"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a71cca49bd302b1242449eb3b393d348b">org.coinor.Ipopt.SEARCH_DIRECTION_TOO_SMALL</a></div><div class="ttdeci">static final int SEARCH_DIRECTION_TOO_SMALL</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00137">Ipopt.java:137</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a77ead30aae6f366cdd41d566893199ef"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a77ead30aae6f366cdd41d566893199ef">org.coinor.Ipopt.eval_grad_f</a></div><div class="ttdeci">abstract boolean eval_grad_f(int n, double[] x, boolean new_x, double[] grad_f)</div><div class="ttdoc">Method to request the gradient of the objective function.</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a7be6b14ffc43b7883b3f59d9920b0a56"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a7be6b14ffc43b7883b3f59d9920b0a56">org.coinor.Ipopt.setIntegerOption</a></div><div class="ttdeci">boolean setIntegerOption(String keyword, int val)</div><div class="ttdoc">Function for setting an integer option.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00541">Ipopt.java:541</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a7f2a52a6c5606b6703f02035914a2552"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a7f2a52a6c5606b6703f02035914a2552">org.coinor.Ipopt.ITERATION_EXCEEDED</a></div><div class="ttdeci">static final int ITERATION_EXCEEDED</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00140">Ipopt.java:140</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a80bae3cab08d6fdab223d74cf33e5f02"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a80bae3cab08d6fdab223d74cf33e5f02">org.coinor.Ipopt.eval_f</a></div><div class="ttdeci">abstract boolean eval_f(int n, double[] x, boolean new_x, double[] obj_value)</div><div class="ttdoc">Method to request the value of the objective function.</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a8338a6f69c453de7e0c7d02309fce4f9"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a8338a6f69c453de7e0c7d02309fce4f9">org.coinor.Ipopt.eval_h</a></div><div class="ttdeci">abstract boolean eval_h(int n, double[] x, boolean new_x, double obj_factor, int m, double[] lambda, boolean new_lambda, int nele_hess, int[] iRow, int[] jCol, double[] values)</div><div class="ttdoc">Method to request either the sparsity structure or the values of the Hessian of the Lagrangian.</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a851e5c9e543e9de8b89061d527e0e39a"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a851e5c9e543e9de8b89061d527e0e39a">org.coinor.Ipopt.AddIpoptStrOption</a></div><div class="ttdeci">native boolean AddIpoptStrOption(long ipopt, String keyword, String val)</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a9005b727656170847da4498472d44be0"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a9005b727656170847da4498472d44be0">org.coinor.Ipopt.INVALID_NUMBER_DETECTED</a></div><div class="ttdeci">static final int INVALID_NUMBER_DETECTED</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00148">Ipopt.java:148</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a9430e3f76a33ad7054574043971b69b2"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a9430e3f76a33ad7054574043971b69b2">org.coinor.Ipopt.getLowerBoundMultipliers</a></div><div class="ttdeci">double[] getLowerBoundMultipliers()</div><div class="ttdoc">Gives dual multipliers for variable lower bounds in final point.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00752">Ipopt.java:752</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a974f513fe0380fa5feb582855657ea49"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a974f513fe0380fa5feb582855657ea49">org.coinor.Ipopt.create</a></div><div class="ttdeci">boolean create(int n, int m, int nele_jac, int nele_hess, int index_style)</div><div class="ttdoc">Create a new problem.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00503">Ipopt.java:503</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a9c67cda248766e9f66d749fa99f432a7"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a9c67cda248766e9f66d749fa99f432a7">org.coinor.Ipopt.get_list_of_nonlinear_variables</a></div><div class="ttdeci">boolean get_list_of_nonlinear_variables(int num_nonlin_vars, int[] pos_nonlin_vars)</div><div class="ttdoc">When LBFGS hessian approximation is used, this method should be overloaded.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00848">Ipopt.java:848</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a9cdb448d319b75a8ffad2ae1df8c6551"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a9cdb448d319b75a8ffad2ae1df8c6551">org.coinor.Ipopt.obj_val</a></div><div class="ttdeci">double obj_val[]</div><div class="ttdoc">Final value of objective function.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00170">Ipopt.java:170</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_a9eebd3ea4266623fd1e006d1d676dac5"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#a9eebd3ea4266623fd1e006d1d676dac5">org.coinor.Ipopt.getStatus</a></div><div class="ttdeci">int getStatus()</div><div class="ttdoc">Gives Ipopt status of last OptimizeNLP call.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00728">Ipopt.java:728</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_aa0b37ea4f81ff1dc33d0738a25aef2cd"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#aa0b37ea4f81ff1dc33d0738a25aef2cd">org.coinor.Ipopt.INVALID_OPTION</a></div><div class="ttdeci">static final int INVALID_OPTION</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00147">Ipopt.java:147</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_aabd4d7c743b373810d1cf25c64099871"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#aabd4d7c743b373810d1cf25c64099871">org.coinor.Ipopt.ACCEPTABLE_LEVEL</a></div><div class="ttdeci">static final int ACCEPTABLE_LEVEL</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00135">Ipopt.java:135</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_aaccf6965122e89d86f4ac57d950787e7"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#aaccf6965122e89d86f4ac57d950787e7">org.coinor.Ipopt.ipopt</a></div><div class="ttdeci">long ipopt</div><div class="ttdoc">Pointer to the native optimization object.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00159">Ipopt.java:159</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ab0910d0da9b1a0edc3dfb655abfdf0ea"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ab0910d0da9b1a0edc3dfb655abfdf0ea">org.coinor.Ipopt.mult_g</a></div><div class="ttdeci">double mult_g[]</div><div class="ttdoc">Final multipliers for constraints.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00182">Ipopt.java:182</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ab0db8ae442cd8e7ad3066dbd833d23a5"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ab0db8ae442cd8e7ad3066dbd833d23a5">org.coinor.Ipopt.getConstraintMultipliers</a></div><div class="ttdeci">double[] getConstraintMultipliers()</div><div class="ttdoc">Gives constraint dual multipliers in final point.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00744">Ipopt.java:744</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ab140cae4c428047f583ca789df5e5495"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ab140cae4c428047f583ca789df5e5495">org.coinor.Ipopt.Ipopt</a></div><div class="ttdeci">Ipopt()</div><div class="ttdoc">Creates a new NLP Solver using a default as the DLL name.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00193">Ipopt.java:193</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ab4cf62cbe73667cb903e9dcddae881dd"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ab4cf62cbe73667cb903e9dcddae881dd">org.coinor.Ipopt.mult_x_L</a></div><div class="ttdeci">double mult_x_L[]</div><div class="ttdoc">Final multipliers for lower variable bounds.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00176">Ipopt.java:176</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ab7d1d406f9705fda644a3c1fdc31c904"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ab7d1d406f9705fda644a3c1fdc31c904">org.coinor.Ipopt.ERROR_IN_STEP_COMPUTATION</a></div><div class="ttdeci">static final int ERROR_IN_STEP_COMPUTATION</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00142">Ipopt.java:142</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_abb69198b1498dbb9c51c56607406a414"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#abb69198b1498dbb9c51c56607406a414">org.coinor.Ipopt.USER_REQUESTED_STOP</a></div><div class="ttdeci">static final int USER_REQUESTED_STOP</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00139">Ipopt.java:139</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ac3b0533ed600d1a350c39cc7ac314657"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ac3b0533ed600d1a350c39cc7ac314657">org.coinor.Ipopt.AddIpoptNumOption</a></div><div class="ttdeci">native boolean AddIpoptNumOption(long ipopt, String keyword, double val)</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ac3f7ebbac769cbf00c30a2d1e7ca124a"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ac3f7ebbac769cbf00c30a2d1e7ca124a">org.coinor.Ipopt.NON_IPOPT_EXCEPTION</a></div><div class="ttdeci">static final int NON_IPOPT_EXCEPTION</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00150">Ipopt.java:150</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ac63a8698afbd446181712bfd86e08f9c"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ac63a8698afbd446181712bfd86e08f9c">org.coinor.Ipopt.GetCurrViolations</a></div><div class="ttdeci">native boolean GetCurrViolations(long ipopt, long ip_data, long ip_cq, boolean scaled, int n, double x_L_violation[], double x_U_violation[], double compl_x_L[], double compl_x_U[], double grad_lag_x[], int m, double nlp_constraint_violation[], double compl_g[])</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ac7a464793c01a39c4e68f093f960056e"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ac7a464793c01a39c4e68f093f960056e">org.coinor.Ipopt.setNumericOption</a></div><div class="ttdeci">boolean setNumericOption(String keyword, double val)</div><div class="ttdoc">Function for setting a number option.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00561">Ipopt.java:561</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ac7f5039b29dd61866610e3a8e8a403b8"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ac7f5039b29dd61866610e3a8e8a403b8">org.coinor.Ipopt.RESTORATION_FAILED</a></div><div class="ttdeci">static final int RESTORATION_FAILED</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00141">Ipopt.java:141</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ac99c6c1aa98865aa73a2b1079a671024"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ac99c6c1aa98865aa73a2b1079a671024">org.coinor.Ipopt.get_curr_iterate</a></div><div class="ttdeci">boolean get_curr_iterate(long ip_data, long ip_cq, boolean scaled, int n, double x[], double z_L[], double z_U[], int m, double g[], double lambda[])</div><div class="ttdoc">Get primal and dual variable values of the current iterate.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00640">Ipopt.java:640</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_accab4abbd131031465d261fbed4eba4a"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#accab4abbd131031465d261fbed4eba4a">org.coinor.Ipopt.get_bounds_info</a></div><div class="ttdeci">abstract boolean get_bounds_info(int n, double[] x_l, double[] x_u, int m, double[] g_l, double[] g_u)</div><div class="ttdoc">Method to request bounds on the variables and constraints.</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ad22ccf5588351d02b727a02a7cddd933"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ad22ccf5588351d02b727a02a7cddd933">org.coinor.Ipopt.FORTRAN_STYLE</a></div><div class="ttdeci">static final int FORTRAN_STYLE</div><div class="ttdoc">Use FORTRAN index style for iRow and jCol vectors.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00131">Ipopt.java:131</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ad3e70c3f0c045077b086199f7a7b5a19"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ad3e70c3f0c045077b086199f7a7b5a19">org.coinor.Ipopt.CreateIpoptProblem</a></div><div class="ttdeci">native long CreateIpoptProblem(int n, int m, int nele_jac, int nele_hess, int index_style)</div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ae1d61a61ade3ef02dea4441196f42b95"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ae1d61a61ade3ef02dea4441196f42b95">org.coinor.Ipopt.OptimizeNLP</a></div><div class="ttdeci">int OptimizeNLP()</div><div class="ttdoc">This function actually solve the problem.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00603">Ipopt.java:603</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ae4a6b09656bdb836851c22baf0112e47"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ae4a6b09656bdb836851c22baf0112e47">org.coinor.Ipopt.get_number_of_nonlinear_variables</a></div><div class="ttdeci">int get_number_of_nonlinear_variables()</div><div class="ttdoc">When LBFGS hessian approximation is used, this method should be overloaded.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00836">Ipopt.java:836</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_ae7d529ffa405d16fb69750e855bc6a40"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#ae7d529ffa405d16fb69750e855bc6a40">org.coinor.Ipopt.callback_grad_f</a></div><div class="ttdeci">double callback_grad_f[]</div><div class="ttdoc">Callback arguments.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00162">Ipopt.java:162</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_aecdb0c4a6377159165cc8240ba4881c2"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#aecdb0c4a6377159165cc8240ba4881c2">org.coinor.Ipopt.getVariableValues</a></div><div class="ttdeci">double[] getVariableValues()</div><div class="ttdoc">Gives primal variable values at final point.</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00710">Ipopt.java:710</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_af185184ae1fe687e64a5f5880c48813d"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#af185184ae1fe687e64a5f5880c48813d">org.coinor.Ipopt.REGULARMODE</a></div><div class="ttdeci">static final int REGULARMODE</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00155">Ipopt.java:155</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_af915b9705da65d4ec1dfaf7b5889c61c"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#af915b9705da65d4ec1dfaf7b5889c61c">org.coinor.Ipopt.CPUTIME_EXCEEDED</a></div><div class="ttdeci">static final int CPUTIME_EXCEEDED</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00143">Ipopt.java:143</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_af97dda92a9fa67678dcdd86ab28c2fae"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#af97dda92a9fa67678dcdd86ab28c2fae">org.coinor.Ipopt.finalize</a></div><div class="ttdeci">void finalize()</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00486">Ipopt.java:486</a></div></div>
<div class="ttc" id="aclassorg_1_1coinor_1_1Ipopt_html_afd5a2fcda4688ceef6ad841d2cb7f627"><div class="ttname"><a href="classorg_1_1coinor_1_1Ipopt.html#afd5a2fcda4688ceef6ad841d2cb7f627">org.coinor.Ipopt.INTERNAL_ERROR</a></div><div class="ttdeci">static final int INTERNAL_ERROR</div><div class="ttdef"><b>Definition</b> <a href="Ipopt_8java_source.html#l00152">Ipopt.java:152</a></div></div>
<div class="ttc" id="anamespaceIpopt_html"><div class="ttname"><a href="namespaceIpopt.html">Ipopt</a></div><div class="ttdoc">This file contains a base class for all exceptions and a set of macros to help with exceptions.</div><div class="ttdef"><b>Definition</b> <a href="IpInexactAlgBuilder_8hpp_source.html#l00013">IpInexactAlgBuilder.hpp:14</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</body>
</html>
